package com.shujia.base.day02


/**
 *  scala中也具备抽象类的概念
 *  1、和java一样如果一个方法是抽象方法的话，那么改该方法没有方法体，没有=和{}
 *  2、和java一样如果一个类中有抽象方法的话，这个类一定要定义成抽象类
 *  3、当一个具体的类继承抽象类的时候，必须要实现所有的抽象方法
 */
object Demo9Class {
  def main(args: Array[String]): Unit = {
    val a1:Animal = new Dog("小黑",3);
    a1.eat()
    a1.sleep()
  }
}

abstract class Animal(name:String, age:Int) {
  // 吃和睡的方法定义成抽象方法
  def eat():Unit

  def sleep():Unit
}

class Dog(name:String, age:Int) extends Animal(name,age){

  override def eat(): Unit = {
    println("🐕吃🥩")
  }

  override def sleep(): Unit = {
    println("🐕趴着睡")
  }
}
